<?php

class CoSoThanhTraController extends BaseController {

    private $cstt;

    //Ham xay dung
    function __construct() {
        $this->cstt = new CoSoThanhTra();
    }

    //Phuong thuc hien ds thong tin
    public function index() {
        $appendlinks = array();
        $key = (Input::has('key')) ? $appendlinks['key'] = ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get('key')))) : null;

            $data = $this->cstt->GetList($key);
            $data->appends($appendlinks)->links();

            $currentPage = (Input::has('page')) ? (Input::get("page") > 1) ? Input::get("page") : 1 : 1;
            $numRows = ($currentPage - 1) * $this->cstt->GetCSTT();

            return View::make('qlcoso.index')
                            ->with("key", $key)
                            ->with("numRows", $numRows)
                            ->with("data", $data)
                            ->with("title", "Danh sách cơ sở thanh tra");
    }

    //Phuong thuc hien khung them thong tin
    public function add() {

        return View::make('qlcoso.add')
                        ->with("title", "Thêm cơ sở thanh tra");
    }
    
    //lay danh sach co so thanh tra
    public function getList() {
        $cosos = $this->cstt->GetListAll();
        foreach($cosos as $cs) {
            $customers[] = array(
                'ID' => $cs->ID,
                'MST' => $cs->MST
              );
        }
        return json_encode($customers);
    }

    //Phuong thuc xu ly luu thong tin moi
    public function save() {
        try {
            if (Input::get("id") != "" || Input::get("id") != null) {
                $data_ct_cs_tt = array(
                    "ID_CS_TT" => Input::get("id"),
                    "NGANH_NGHE_KD" => preg_replace('/\s\s+/', ' ', trim(Input::get("nganhnghekd"))),
                    "THOI_DIEM_KT_TU" => Input::get("ketoantu"),
                    "THOI_DIEM_KT_DEN" => Input::get("ketoanden"),
                    "HT_HACH_TOAN" => preg_replace('/\s\s+/', ' ', trim(Input::get("hthachtoan"))),
                    "HT_NOP_THUE" => preg_replace('/\s\s+/', ' ', trim(Input::get("htnopthue"))),
                    "NOI_DK_KE_KHAI" => preg_replace('/\s\s+/', ' ', trim(Input::get("noidkkekhai")))
                );
                //Chỉ thêm mới bảng chi_tiet_cs_tt
                $ct_cs_tt = new ChiTietCoSoThanhTra();
                if ($ct_cs_tt->validation($data_ct_cs_tt)) {
                    try {
                        $ct_cs_tt->SaveIn($data_ct_cs_tt);
                    } catch (Exception $ex) {
                        return Redirect::back()
                                        ->with("error", "Thêm không thành công do cơ sở đã có trong năm!");
                    }
                } else {
                    return Redirect::back()
                                    ->with("error", "Thêm cơ sở thất bại do dữ liệu không hợp lệ!");
                }
            } else {
                $data_cs_tt = array(
                    "MST" => Input::get("mst"),
                    "TEN_CS" => trim(Input::get("tencoso")),
                    "CHU_CS" => trim(Input::get("chucoso")),
                    "GIAY_CN_SO" => ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get("so")))),
                    "NOI_CAP" => preg_replace('/\s\s+/', ' ', trim(Input::get("noicap"))),
                    "NGAY_CAP" => Input::get("ngaycap"),
                    "DIA_CHI" => preg_replace('/\s\s+/', ' ', trim(Input::get("diachi")))
                );
                $data_ct_cs_tt = array(
                    "ID_CS_TT" => "",
                    "NGANH_NGHE_KD" => preg_replace('/\s\s+/', ' ', trim(Input::get("nganhnghekd"))),
                    "THOI_DIEM_KT_TU" => Input::get("ketoantu"),
                    "THOI_DIEM_KT_DEN" => Input::get("ketoanden"),
                    "HT_HACH_TOAN" => preg_replace('/\s\s+/', ' ', trim(Input::get("hthachtoan"))),
                    "HT_NOP_THUE" => preg_replace('/\s\s+/', ' ', trim(Input::get("htnopthue"))),
                    "NOI_DK_KE_KHAI" => preg_replace('/\s\s+/', ' ', trim(Input::get("noidkkekhai")))
                );
                // Them moi bang cs_tt
                if ($this->cstt->validation($data_cs_tt)) {
                    $data_ct_cs_tt["ID_CS_TT"] = $this->cstt->SaveIn($data_cs_tt);
                    //   Them moi bang chi_tiet_cs_tt
                    $ct_cs_tt = new ChiTietCoSoThanhTra();
                    if ($ct_cs_tt->validation($data_ct_cs_tt)) {
                        try {
                            $ct_cs_tt->SaveIn($data_ct_cs_tt);
                        } catch (Exception $ex) {
                            return Redirect::back()
                                            ->with("error", "Thêm không thành công do cơ sở đã có trong năm!");
                        }
                    } else {
                        return Redirect::back()
                                        ->with("error", "Thêm cơ sở thất bại do dữ liệu không hợp lệ!");
                    }
                } else {
                    return Redirect::back()
                                    ->with("error", "Thêm cơ sở thất bại do dữ liệu không hợp lệ!");
                }
            }
            return Redirect::back()
                            ->with("success", "Thêm thành công cơ sở thanh tra!");
        } catch (Exception $ex) {
            return Redirect::back()
                            ->withInput()
                            ->with("error", "Thêm thất bại do dữ liệu không hợp lệ!");
        }
    }

    //Phuong thuc hien khung sua thong tin xac dinh
    public function edit() {
        if (Input::has('id') && Input::has('idchitiet')) {
            $id = Input::get('id');
            $idchitiet = Input::get('idchitiet');
            if (is_numeric($id) && is_numeric($idchitiet)) {

                $chitietcstt = new ChiTietCoSoThanhTra();
                $data_chitietcs = $chitietcstt->GetOne($idchitiet);
                
                $stt = 0;
                return View::make('qlcoso.view')
                                ->with("chitietcs", $data_chitietcs)
                                ->with("stt", $stt)
                                ->with("title", "Xem thông tin chi tiết cơ sở");
            }
        }
        return $this->index();
    }

    //Phuong thuc xu ly luu thong tin da sua
    public function store() {
        $idcs = Input::get('idcs');
        $data_cs_tt = array(
            "MST" => Input::get("mst"),
            "TEN_CS" => trim(Input::get("tencoso")),
            "CHU_CS" => trim(Input::get("chucoso")),
            "GIAY_CN_SO" => preg_replace('/\s\s+/', ' ', trim(Input::get("so"))),
            "NOI_CAP" => preg_replace('/\s\s+/', ' ', trim(Input::get("noicap"))),
            "NGAY_CAP" => Input::get("ngaycap"),
            "DIA_CHI" => preg_replace('/\s\s+/', ' ', trim(Input::get("diachi")))
        );
        if ($this->cstt->validation($data_cs_tt)) {
            if ($this->cstt->StoreIn($data_cs_tt, $idcs)) {
                $idctcs = Input::get('idctcs');
                $data_ct_cs_tt = array(
                    "NGANH_NGHE_KD" => preg_replace('/\s\s+/', ' ', trim(Input::get("nganhnghekd"))),
                    "THOI_DIEM_KT_TU" => Input::get("ketoantu"),
                    "THOI_DIEM_KT_DEN" => Input::get("ketoanden"),
                    "HT_HACH_TOAN" => preg_replace('/\s\s+/', ' ', trim(Input::get("hthachtoan"))),
                    "HT_NOP_THUE" => preg_replace('/\s\s+/', ' ', trim(Input::get("htnopthue"))),
                    "NOI_DK_KE_KHAI" => preg_replace('/\s\s+/', ' ', trim(Input::get("noidkkekhai")))
                );
                $ctcstt = new ChiTietCoSoThanhTra();
                if ($ctcstt->validation($data_ct_cs_tt)) {
                    if ($ctcstt->StoreIn($data_ct_cs_tt, $idctcs)) {
                        return Redirect::back()
                                        ->with('success', 'Cập nhật thông tin cơ sở thành công!');
                    } else {
                        return Redirect::back()
                                        ->with('error', 'Cập nhật chi tiết cơ sở thanh tra không thành công!');
                    }
                }
                return Redirect::back()
                                ->with('error', 'Cập nhật chi tiết cơ sở thanh tra không thành công do dữ liệu không hợp lệ!');
            } else {
                return Redirect::back()
                                ->with('error', 'Cập nhật cơ sở thanh tra không thành công MST của cơ sở đã tồn tại trong CSDL!');
            }
        } else {
            return Redirect::back()
                            ->with('error', 'Cập nhật cơ sở thanh tra không thành công do dữ liệu không hợp lệ!');
        }
    }

    //Phuong thuc xoa mot thong tin nao do
    public function remove() {
        if (Input::has("idcstt") && Input::has("idctcstt")) {
            $idcstt = Input::get("idcstt");
            $idctcstt = Input::get("idctcstt");
            if (is_numeric($idcstt) && is_numeric($idctcstt)) {
                $ctcstt = new ChiTietCoSoThanhTra();
                if ($ctcstt->Remove($idctcstt)) {
                    ($this->cstt->Remove($idcstt));
                    $appendlinks = array();
                    $key = (Input::has('key')) ? $appendlinks['key'] = ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get('key')))) : null;

                    try {
                        $data = $this->cstt->GetList($key);
                        $data[0]->ID; //Bẫy lỗi
                    } catch (Exception $ex) {
                        $url = url("ql=dscoso");
                        $currentPage = (Input::has('page')) ? (Input::get("page") > 1) ? Input::get("page") : 1 : 1;
                        Input::merge(array('page' => ( --$currentPage == 0) ? 1 : $currentPage));

                        $data = $this->cstt->GetList($key);
                        $data->setBaseUrl('ql=dscoso');
                        $data->appends($appendlinks)->links();

                        $numRows = ($currentPage - 1) * $this->cstt->GetCSTT();
                        $url = $url . "?page=" . $currentPage . (($key != null) ? "&key=" . $key : "");
                        return View::make('qlcoso.index')
                                        ->with("key", $key)
                                        ->with("numRows", $numRows)
                                        ->with("data", $data)
                                        ->with("url", $url)
                                        ->with("warning", "Xóa cơ sở thanh tra hoàn tất!<br/>Cảnh báo: không khuyến khích việc xóa dữ liệu này.")
                                        ->with("title", "Danh sách cơ sở thanh tra");
                    }
//                    }
//                    return Redirect::back()
//                                    ->with("warning", "Xóa cơ sở tha3232nh tra hoàn tất!<br/>Cảnh báo: không khuyến khích việc xóa dữ liệu này.");
                }
                return Redirect::back()
                                ->with("error", "Xóa cơ sở thất bại do cơ sở đã phát sinh trong hồ sơ thanh tra!");
            }
        }
        return Redirect::back()
                        ->with("error", "Không thể xóa do không có cơ sở này trong CSDL!");
    }

    //Phuong thuc tim kiem thong tin xac dinh theo thuc post
    public function search() {
        if (Request::ajax()) {
            $mst = Input::get('mst');
            try {
                $data = $this->cstt->GetOneWithMST($mst);
                return Response::json($data);
            } catch (Exception $ex) {
                return Response::json(null);
            }
        }
    }

}
